package com.zt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zt.pojo.TeacherAvailable;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 教师可用时间服务接口
 * @author system
 * @description 针对表【teacher_available(教师可用时间表)】的数据库操作Service
 */
public interface TeacherAvailableService extends IService<TeacherAvailable> {

    /**
     * 根据教师ID查询可用时间
     * @param teacherId 教师ID
     * @return 可用时间列表
     */
    List<TeacherAvailable> getAvailableTimesByTeacherId(Integer teacherId);

    /**
     * 添加教师可用时间
     * @param teacherId 教师ID
     * @param availableTime 可用时间
     * @param status 状态
     * @return 是否成功
     */
    boolean addAvailableTime(Integer teacherId, LocalDateTime availableTime, Integer status);

    /**
     * 删除教师可用时间
     * @param teacherId 教师ID
     * @param availableTime 可用时间
     * @return 是否成功
     */
    boolean removeAvailableTime(Integer teacherId, LocalDateTime availableTime);

    /**
     * 批量添加教师可用时间
     * @param teacherId 教师ID
     * @param availableTimes 可用时间列表
     * @param status 状态
     * @return 是否成功
     */
    boolean batchAddAvailableTimes(Integer teacherId, List<LocalDateTime> availableTimes, Integer status);

    /**
     * 申请成为长期教师
     * @param teacherId 教师ID
     * @return 是否成功
     */
    boolean applyForLongTermTeacher(Integer teacherId);



    /**
     * 根据教师ID获取长期教师申请状态
     * @param teacherId 教师ID
     * @return 申请记录
     */
    TeacherAvailable getLongTermApplicationByTeacherId(Integer teacherId);
}
